using System;

namespace WP.Commons
{

    public enum JobControlGenType
    {
        OE = 0,
        OEReturn,
        PO,
        POReturn,
        BtoB,
        BtoBReturn,
        BtoBExistingPO,
        RM,
        VQR,
        None

    }

    public enum RemanStatus    { OCON = 30 , Oent = 20 ,OFIN = 40 , Ohld = 10}
    public enum GetTaglotActualCostType { SalesOrder = 1, RemanIn, TrfsferIn, InterCpmpanyTrfsferIn, BackFalshing, Issues, ImAdjCost, ImAdjQty,OeSubtitute };

	/// <summary>
	/// For multi type message ,paramater of ShowMessage mothed: 
	/// </summary>
	public enum MessageType
	{
		Warning,
		Prompt,
		Error,
		YesNo,
		YesNoCancel
	}

	public enum MessageLogType
	{
		Warning,
		Prompt,
		Error
	}

    public enum ScaleType
    {
        gCostScale = 1,
        gPriceScale ,
        gQtyScale 
    }

	public enum SalesCostType
	{
		Wtavgcost=1,
		ArtificialCost,
		MarketCost,
        OrderCost
	}

	public enum SystemModules
	{
		GL,//General Ledger
		AP,//Accunts Payable
		AR,//Accounts Receivable
		OE,//Order Entry
		IM,//Inventory Management
		PO,//Purchasing and Receiving
		RM,//Remanufacturing
		TW,//Trader WorksSheets
		TP,//Transportation
		ES,//Executinve Summary
		MF,//Management Functions
        PD,//Production
        CR,//CRM
        WP,//My work place
		OT //Other Menu,It is not existed in mMenu
	}

	public enum DataType
	{
		String,
		DateTime,
		Integer,
		Numeric,
		Bool,
		Byte
	}

	public enum RangeType 
	{Big,Small,BigEqual,SamllEqual,Like,Equal};


	public enum ValidateType 
	{
		IsDecimal,IsInt,IsDate,
		IsBool,IsTelOrFax,IsEMail,IsNotEmpty,
		IsPostCode,IsCampareDecimal,IsCampareDate,
		HasNotDoc,IsNotRepeat
	}

	//For for datagrid list paging
    public enum NavigateOrient
    {
        Top,Prev,Next,Bottom
    }
	public enum SortBy
	{
		ASC,DESC
	}

	public enum FormStatus
	{
		AddNew = 0,//let the Form Can be Edit and give the form default value
		Update,//let the Form Changed to Edit from the Query status
		Query,//Get datat from Meta and Diaplay them to Form and form can't be Edit
		Delete,//Clear the Page Content and Save the Change to Meta
        Loading //show forms is loading and still not show  .
	}	

	//used in function GetPrdInfo
	public enum PeriodRange
	{
		PeriodCur =0,Period01,Period02,Period03,Period04,
		Period05,Period06,Period07,Period08,Period09,
		Period10,Period11,Period12,Period13,Period14,
		Period15,Period16,Period17,Period18,Period19,
		Period20,Period21,Period22,Period23,Period24
	}

	//used in function GetPrdInfo
	public enum PeriodOption 
	{
		Period = 1,
		StPrdDate,
		EnPrdDate,
		PreYrStPrdDate,
		PreYrEnPrdDate,
		PrePreYrStPrdDate,
		PrePreYrEnPrdDate
	}

	//used in function getitemdetailinfo
	public enum DetailSumType
	{
		ByDetail=0,
		ByCustomer=1,
        ByItem = 2,
		ByInvoice=3,
		ByDate=4
	}

	public enum ItemNumber
	{
		gItemCostPrec,
		gItemQtyPrec,
		gItemPricePrec
	}
	public enum  ApAccruOpenType
	{
		OpenBal=0,
		PoGoodRecv,
		PoTruck,
		PoLandedCost,
		RmTruck,
		RmLandedCost,
		TrfTruck,
		TrfLanedCost,
		ApInvoice,
		ApPrePay,
		OETruck,
		ImTreatment,
		ImAdj,
		TrfInteCmp
	}

	public enum  QuantityValues
	{
		QtyAvail,
		OnHand,
		OnHandComm,
		OnOrder,
		BackOrder,
		BmIPQty,
		BmQtyComm,
		TransferIn,
		TransferOut,
		OnTransit,
		Others
	}

	//	//For WoodQty
	public enum StringFormatType
	{
		PC_Length,
		PC_Width,
		PC_Length_Width
	}
	//	//For WoodQty
	public enum ItemInfoOpt
	{
		WholeItem,
		OnlyPcs,
		OnlyLen,
		OnlyWidth
	}

	//	//For WoodQty
	public enum QtySortBy
	{
		IntAscent,
		IntDescend ,
		IntNonSort
	}

	public enum SqlType
	{
		LooklUp,
		DropDownList,
		ShowList,
		Update
	}

	/// <summary>
	/// Used for FillDropDownList function in WebFunctions class
	/// According to the Value init DropDownList select value
	/// </summary>
	public enum InitValue
	{
		Min,
		Max,
		None,
		All
	}
	public enum SqlOption     
	{
		SqlPartTableName = 0,
		SqlPartMain = 1,
		SqlPartWhere = 2,
		SqlPartOrderBy = 3,
		SqlPartInner = 4,
		SqlPartAll = 5
	}

    public enum ExceptionType
    {
        System = 0,
        User = 1
    }


    public enum DateFormatOption
    {
        DateFmtMDY = 0,
        FmtDtp,
        DateFmtMD,
        DateFmtYMD,
        DateFmtMY
    }
    public enum OeCustomizeReportTypeOption { OfficeCopy = 0, Office, Original, Customer, Salesperson, QuickEstimate, SummaryEstimate, DetailEstimate, BankEstimate, WithCost,FILE,TRADER, ACCOUNTING,NoCopy}
    public enum InitGoodsRecvFreitType { OverWriteFreit = 0, InsertNewFreit, NotInitFreit };
    public enum TallyCalculatorShowType { OESales, RMWorkOrder }
    public enum TallyInModuleType
    {
        POPurchaseOrder = 0,
        POGoodsReceive,
        POCustMillGoodsRecv,
        POSupplierVMIGoodsRecv,
        OEB2BGoodsReceive,
        OEReman,
        OEReturn,
        RMOutput,
        RmBackFlashOutPut,
        IMTransfer,
        IMProduct,
        IMAdjust,
        IMOpenBalance,
        OEQuote,
        OEQuoteTransfer,
        OECustServiceGenOrder,
        OEBidSectionDtl,
        OeBidJobControlSectionDtl,
        OeBidJobControlSectionDtlBtoB

    }


    public enum TallyOutModuleType
    {
        OeSalesOrderForQtyShip = 0,
        OeSalesOrderForQtyOrder ,
        POReturn,
        RMInput,
        OEJobAction,
        IMTransfer,
        IMProductIssues,
        IMAdjust,
        IMBackFlashInPut,
        IMAdjustCost,
        OeSalesOrderSubstituteQtyShip
    }

    public enum NonStockingItemSelectModuleType
    {
        OeSalesOrderForQtyShip = 0,
        OeSalesOrderForQtyOrder,
        POReturn,
        RMInput,
        OEJobAction,
        IMTransfer,
        IMProductIssues,
        IMAdjust,
        IMBackFlashInPut,
        IMAdjustCost,
        OeSalesOrderSubstituteQtyShip,
        OeSalesReturn
    }


    public enum ModuleForCostType
    {
        Purchase = 1,
        GoodsRecv,
        SalesOrder,
        RemanIn,
        RemanOut,
        SalesReturn,
        OeSubtitute
    }


    public enum ApOpenType
    {
       gInvoice = 1,
       gCheck,
       gCredit,
       gDebit,
       gHoldBack
    }

    public enum ItemType
    {
        Tag = 0,
        Lot,
        Others
    }

    public enum DateInterval
    {
        Second, 
        Minute, 
        Hour, 
        Day, 
        Week, 
        Month, 
        Quarter, 
        Year
    }
    public enum SystemNewTagLot
    {
       gImInvAdj = 0,
       gImInvTrf = 1,
       gImInvStock = 2,
       gImInvTreatment = 3,
       gImInvSplit = 4
    }
    public enum ItemInventoryInquiryType { InquiryByItem = 0, InquiryByLoc,InquiryByLocForSalesPerson };
    public enum InventoryAvailQryCallType { SalesOrder = 0, PurchaseOrder, Others };
    public enum SelectItemByCategoryCallType { SalesOrder = 0, PurchaseOrder, Others };


    public enum FaxJobType
    {
        intNoJob = 0,
        intFax,
        intEmail
    }
    public enum FaxEmailType { SaledOrder = 0, SalesReturn, Customer, PurchaseOrder, InventoryTransfer, Transportation, Transportation1, JobControl, Bid, Quotation, Supplier, ComputerChqEditList, PullCard, EnternalRM, Other, BillToForInv };
    #region ImSlsHistQry enum 
    public enum ImSlsHistQryType
    {
        ByItem = 0,
        ByCust,
        BySlsp
    }

    public enum PageTabMiscByItem
    {
        Detail = 0,
        Monthly,
        Yearly
    }

    public enum PageTabMisc
    {
        Detail = 0,
        CateGory,
        Monthly,
        Yearly
    }

    public enum LocType
    {
        Both = 0,
        Direct,
        Inventory
    }

    public enum DisplayType
    {
        MTDorYTD = 0,
        MTD,
        YTD
    }

    #endregion 

    #region ImSlsHistRpt
    public enum RptType
    {
        ByItem = 0,
        ByCustomer,
        ByTrader,
        DetailByCustomer,
        SumByItem
    }
    #endregion

    public enum PaintType
    {
        Normal,
        Selected,
        MouseOver,
        Pressed
    }

    public enum CalcCommUnitQtyType
    {
        SalesOrder=0,
        SalesReturn,
        Quotation
    }

    public enum SubDtlSourceType
    {
        GlJnlEntry,
        ApSupInv,
        ApComputerChk,
        ApManualChk,
        ArCashRecv,
        ArAdjust,
        ApVoidPostedComputerChk,
        ApVoidPostedManualChk,
    }

    public enum ImInvProdHistQryType
    {
        byDetail = 0,
        byDaily,
        byMonthly,
        byQuarterly,
        byYearly
    }

    public enum TallyCalculatorType { WordingType = 0, NomalType, TagGroupType }

    public enum SchedulerType
    {
        Day = 0,
        Week,
        Month
    }
    public enum CustomerRmkLookUpType { NewAddSalesOrder = 1, ConfrimSalesOrder, Other };

    /// <summary>
    /// The status of PostPrint when post form
    /// </summary>
    /// <remarks>
    /// data from table mDftPostPrintStatus
    /// </remarks>
    public enum PostPrintStatus
    {
        Printer,
        Screen,
        Nothing,
        UnDefault
    }

    public enum ExtrCostType 
    { 
        POPurchase = 0, 
        POGoodsRecv, 
        OESalesOrder, 
        OEReturn, 
        OEQuote, 
        Reman, 
        Transfer 
    }

}
